home *** CD-ROM | disk | FTP | other *** search
/ Freelog Special Freeware 31 / FreelogHS31.iso / ArgentCompta / Bankperfect / bp.exe / Scripts / Export QIF / export_qif.py < prev   
Encoding:
Text File  |  2007-03-18  |  1.7 KB  |  52 lines

  1. #Version 1.2 : Adaptation du script aux nouveau systΦme de catΘgories
  2. #Version 1.1 : Fabrice Vado (Nom du compte dans le nom du fichier QIF)
  3. #Version 1.0 : Fabio Chelly
  4.  
  5. import BP
  6. global categ_names
  7.  
  8. Ctg = {}
  9. for i, c in enumerate(BP.CategName):
  10.   p = c.find("=")
  11.   Idx = int(c[:p])
  12.   c = c[p+1:].strip()
  13.   Parent = BP.CategName[BP.CategParent[i]]
  14.   p = Parent.find("=")
  15.   PIdx = int(Parent[:p])
  16.   if Idx == PIdx: Ctg[Idx] = c
  17.   else: Ctg[Idx] = "%s:%s" %(Parent[p+1:].strip(), c)
  18.  
  19. def GetCategName(index):
  20.   if not Ctg.has_key(index): return ""
  21.   return Ctg[index]
  22.  
  23. #_______________________________________________________________________________
  24. account = BP.AccountCurrent()
  25. accountname = BP.AccountName[account]
  26.  
  27. categ_names = BP.CategName
  28. categs = BP.OperationCateg[account]
  29. categs = [GetCategName(index) for index in categs]
  30. lines = zip(BP.OperationDate[account], BP.OperationMode[account], BP.Operationthirdparty[account], BP.OperationDetails[account], categs, BP.OperationAmount[account])
  31.  
  32. records = []
  33. i = 0
  34. visible_lines = BP.VisibleLines()
  35. for dt, md, tr, dl, ct, mt in lines:
  36.   if i in visible_lines: 
  37.     if not tr == "": tr = "P%s\n" %tr
  38.     if not dl == "": dl = "M%s\n" %dl
  39.     if not ct == "": ct = "L%s\n" %ct
  40.     records.append( "D%s\nN%s\n%s%s%sT%.2f\n^" %(dt.replace("-", "/"), md, tr, dl, ct, mt) )
  41.   i += 1
  42.  
  43. qif_file = BP.BankPerfectFileName()
  44. if qif_file[-3:] == ".bp": qif_file = qif_file[:-3]
  45. qif_file = "%s-%s.qif" %(qif_file, accountname)
  46.  
  47. try:
  48.   open(qif_file, "w").write("!type:Bank\n%s" %"\n".join(records))
  49.   BP.MsgBox("Le fichier %s a ΘtΘ crΘΘ" %qif_file, 0)
  50. except:
  51.   BP.MsgBox("Impossible de crΘer le fichier %s" %qif_file, 0)
  52.